-
Notifications
You must be signed in to change notification settings - Fork 7.3k
ffmpeg: add ARM64EC build support #48803
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| @@ -0,0 +1,77 @@ | |||
| diff --git a/compat/windows/makedef b/compat/windows/makedef | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are fairly large patches, have you submitted them upstream?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @BillyONeal,
Yes, these patches were submitted upstream to FFmpeg. However, the maintainers indicated that ARM64EC support would require ongoing maintenance and therefore could not be merged at this time, so we are providing ARM64EC support through vcpkg.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the maintainers indicated that ARM64EC support would require ongoing maintenance and therefore could not be merged at this time
Unfortunately that sounds like upstream explicitly declining to take the patch which would be a reason we would not take this. See https://learn.microsoft.com/vcpkg/contributing/maintainer-guide#patching
... our most important thing is we don't put words in upstream's mouth and if they have explicitly declined to do something we are not a means to go around their wishes.
(I understand that arm64ec is a thing Microsoft cares about in some capacity and vcpkg is a Microsoft product but that doesn't mean we are sponsoring development of everything in vcpkg's registry)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(You could consider doing vanilla arm64 and calling ffmpeg out-of-proc from arm64ec apps)
|
Drafted due to CLA. You should be able to fix the build failures with |
|
Hi @BillyONeal, We have also submitted these patches upstream. However, the FFmpeg maintainers noted that ARM64EC support would require ongoing maintenance, so the ARM64EC-specific changes couldn't be merged at this time. Therefore, we would like to provide ARM64EC support for FFmpeg through vcpkg, as this would enable several applications such as Jianying Pro and WPS Office to build and run successfully for the ARM64EC target. I have initiated the CLA approval process within our organization and will respond to the CLA as soon as internal approval is granted. Thanks. |
This update adds ARM64EC support to the FFmpeg vcpkg port. Key changes: - Enable ARM64EC architecture handling in portfile.cmake. - Add /machine:arm64ec flags for lib.exe, armasm64, and linker. - Update gas-preprocessor to a newer revision required for ARM64EC. - Extend assembler, AR, and dumpbin logic to correctly process ARM64EC binaries. This allows FFmpeg to be successfully built for Windows ARM64EC using the vcpkg toolchain.
|
@microsoft-github-policy-service agree company="Multicoreware" |
|
I'm closing this PR due to the reasons stated in BIlly's comment: #48803 (comment) We recommend that you create a custom registry with your changes, that way you can still use vcpkg to install ffmpeg and include your ARM64EC fixes. |
This PR adds Windows ARM64EC build support to the FFmpeg port.
Summary
arm64ecarchitecture handling inportfile.cmake./machine:arm64ectolib.exe, armasm64, and linker flags.makedefto handle ARM64EC:dumpbin -linkermember:32(required for ARM64EC archives).$entry_thunk/$exit_thunksymbols.#on symbols.These changes enable FFmpeg to successfully build as ARM64EC while keeping behavior unchanged for all other architectures.